perm filename PARSE[P,JRA] blob sn#056881 filedate 1973-08-08 generic text, type T, neo UTF8
COMMENT ⊗   VALID 00002 PAGES 
RECORD PAGE   DESCRIPTION
 00001 00001
 00002 00002	LET ST(X)={{ALT<F1>|<F2>} }MEAN PRINT(CADR X)
 00004 ENDMK
⊗;
LET ST(X)={{ALT<F1>|<F2>} }MEAN PRINT(CADR X);
 
LET F1(*,*,F)={DSK ': <FILE>} MEAN 'DSK CONS F;

LET F2(X,Y)={<F3>{REP 0 M{'∨ <F3>}}} MEAN
	BEGIN NEW J;
	J←X;
	FOR NEW K IN Y DO J←<CAR K,J, CADR K>;
	RETURN J;
	END;

LET F3(X,Y)={<F4>{REP 0 M{'∧ <F4>}}} MEAN
	BEGIN NEW J;
	J←X;
	FOR NEW K IN Y DO J ←<CAR K, J,CADR K>;
	RETURN J;
	END;

LET F4(X)={{ALT ?( <ST> ?) | ?¬<F4> | <PREDIC>}} MEAN
	IF X[1]=1∨X[1]=3 THEN X[2] ELSE <NOT,X[2]>;

LET PREDIC(X)={{ALT ANCESTRY | NONE | VINE | UNIT |P1 |P2
               | SUPPORT <C>
	       | DEPTH ?[ [NUMBER] ?] 		
	       | SELDEPTH ?[ <FNLSTP> ?]
	       | LENGTH ?[ [NUMBER] ?] 
	       | MODEL ?[ <PREDLST>';<PREDLST> ?]
	       | EQUALITY ?[<OP> '; <NUMBER> ?]
	       | DEMOD ?[ <CLAUSES><NUMBER> ?]
	       | DEFMODEL ?[ [IDENTIFIER] ?]
	        }}
MEAN IF X[1]=1∨X[1]=2∨X[1]=3 ∨X[1]=4 THEN X[2] ELSE IF
X[1]=5 THEN 'ALLPOS  ELSE X;

LET PROGRAM(*)={<ST>';} MEAN NIL;

_EOF_